Online blind source separation

ABSTRACT

A method for blind source separation of sources detects the sources using sensors to obtain representative data. The data is then represented by two mixtures having estimates of amplitude and delay mixing parameters. The estimates are updated, including: calculating error measures, each indicating a closeness of the estimates for a given source to a given time-frequency point in the mixtures; and revising the estimates, based on the error measures. The mixtures are filtered to obtain estimates of the sources, including: selecting one error measure having a smallest value in relation to any other error measures, for each time-frequency point in the mixtures; and leaving unaltered any time-frequency points for which a given error measure has the smallest value, while setting to zero any other time-frequency points for which the given error measure does not have the smallest value, for each error measure. The estimates of the sources are output.

BACKGROUND

1. Technical Field

The present invention generally relates to separating signal sources and, in particular, to online blind separation of multiple sources.

2. Background Description

The separation of independent sources from an array of sensors is a classic but difficult problem in signal processing. Generally, the signal sources as well as their mixture characteristics are unknown. Without knowledge of the signal sources, other than a general assumption that the sources are independent, the signal processing is commonly known in the art as the “blind separation of sources”. The separation is “blind” because nothing is assumed about the independent source signals, nor about the mixing process.

A typical example of the blind separation of source signals is where the source signals are sounds generated by two independent sources, such as two (or more) separate speakers. An equal number of microphones (two in this example) are used to produce mixed signals, each composed as a weighted sum of the source signals. Each of the source signals is delayed and attenuated in some unknown amount during passage from the speaker to a microphone, where it is mixed with the delayed and attenuated components of the other source signals. Multi-path signals, generated by multiple reflections of the source signals, are further mixed with direct source signals. This is generally known as the “cocktail party” problem, since a person generally wishes to listen to a single sound source while filtering out other interfering sources, including multi-path signals.

According to the prior art, a blind source separation technique that allows the separation of an arbitrary number of sources from just two mixtures provided the time-frequency representations of sources do not overlap is described by Jourjine et al., in “Blind Separation of Disjoint Orthogonal Signals: Demixing N Sources from 2 Mixtures”, in Proceedings of the 2000 IEEE International Conference on Acoustics, Speech, and Signal Processing, Istanbul, Turkey, June 2000, vol. 5, pp. 2985-88, June 2000. This technique is hereinafter referred to as the “original DUET algorithm”. The key observation in the technique is that, for mixtures of such sources, each time-frequency point depends on at most one source and its associated mixing parameters. In anechoic environments, it is possible to extract the estimates of the mixing parameters from the ratio of the time-frequency representations of the mixtures. These estimates cluster around the true mixing parameters and, identifying the clusters, one can partition the time-frequency representation of the mixtures to provide the time-frequency representations of the original sources.

The original DUET algorithm involved creating a two-dimensional (weighted) histogram of the relative amplitude and delay estimates, finding the peaks in the histogram, and then associating each time-frequency point in the mixture with one peak. The original implementation of the method was offline and passed through the data twice; one time to create the histogram and a second time to demix.

Accordingly, it would be desirable and highly advantageous to have an online method for performing blind source separation of multiple sources. Moreover, it would be further desirable and highly advantageous to have such a method that does not require the creation and updating of a histogram or the locating of peaks in the histogram.

SUMMARY OF THE INVENTION

The problems stated above, as well as other related problems of the prior art, are solved by the present invention, a method for online blind separation of multiple sources.

The present invention provides an online version of the DUET algorithm that avoids the need for the creation of the histogram, which in turn avoids the computational load of updating the histogram and the tricky issue of finding and tracking peaks. The advantages of the present invention over the prior art, in particular, the original DUET algorithm include: online (5 times faster than real time); 15 dB average separation for anechoic mixtures; 5 dB average separation for echoic mixtures; and can demix two or more sources from 2 mixtures.

According to an aspect of the present invention, there is provided a method for blind source separation of multiple sources. The multiple sources are detected using an array of sensors to obtain data representative of the multiple sources. The data is represented by two mixtures having estimates of amplitude and delay mixing parameters. The estimates of amplitude and delay mixing parameters are updated, comprising the steps of: calculating a plurality of error measures, each of the plurality of error measures indicating a closeness of the estimates of amplitude and delay mixing parameters for a given source to a given time-frequency point in the two mixtures; and revising the estimates of amplitude and delay mixing parameters, based on the plurality of error measures. The two mixtures are filtered to obtain estimates of the multiple sources, comprising the steps of: selecting one of the plurality of error measures having a smallest value in relation to any other of the plurality of error measures, for each of a plurality of time-frequency points in the mixtures; and leaving unaltered any of the plurality of time-frequency points in the mixtures for which a given one of the plurality of error measures has the smallest value, while setting to zero any other of the plurality of time-frequency points in the mixtures for which the given one of the plurality of error measures does not have the smallest value, for each of the plurality of error measures. The estimates of the multiple sources are output.

These and other aspects, features and advantages of the present invention will become apparent from the following detailed description of preferred embodiments, which is to be read in connection with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a computer processing system 100 to which the present invention may be applied according to an illustrative embodiment thereof;

FIG. 2 is a flow diagram illustrating a method for blind source separation of multiple sources, according to an illustrative embodiment of the present invention;

FIG. 3 is a flow diagram illustrating step 210 of the method of FIG. 2, according to an illustrative embodiment of the present invention;

FIG. 4 is a flow diagram illustrating step 240 of the method of FIG. 2, according to an illustrative embodiment of the present invention;

FIG. 5 is a flow diagram illustrating step 250 of the method of FIG. 2, according to an illustrative embodiment of the present invention;

FIG. 6 is a flow diagram illustrating step 270 of the method of FIG. 2, according to an illustrative embodiment of the present invention;

FIG. 7 is a diagram illustrating a test setup for blind source separation on anechoic data, according to an illustrative embodiment of the present invention;

FIG. 8 is a diagram illustrating a comparison of overall separation SNR gain by angle difference for the anechoic data, according to an illustrative embodiment of the present invention;

FIG. 9 is a diagram illustrating the overall separation SNR gain by 30 degree angle pairing for the anechoic data, according to an illustrative embodiment of the present invention;

FIG. 10 is a diagram illustrating a comparison of overall separation SNR gain by angle difference, using echoic office data in a voice versus noise comparison, according to an illustrative embodiment of the present invention;

FIG. 11 is a diagram illustrating separation results for pairwise mixtures of voices, according to an illustrative embodiment of the present invention; and

FIG. 12 is a diagram illustrating W-disjoint orthogonality for various sources, according to an illustrative embodiment of the present invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The present invention is directed to online blind separation of multiple sources. It is to be understood that the present invention may be implemented in various forms of hardware, software, firmware, special purpose processors, or a combination thereof. Preferably, the present invention is implemented as a combination of hardware and software. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage device. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (CPU), a random access memory (RAM), and input/output (I/O) interface(s). The computer platform also includes an operating system and microinstruction code. The various processes and functions described herein may either be part of the microinstruction code or part of the application program (or a a combination thereof) that is executed via the operating system. In addition, various other peripheral devices may be connected to the computer platform such as an additional data storage device and a printing device.

It is to be further understood that, because some of the constituent system components and method steps depicted in the accompanying Figures are preferably implemented in software, the actual connections between the system components (or the process steps) may differ depending upon the manner in which the present invention is programmed. Given the teachings herein, one of ordinary skill in the related art will be able to contemplate these and similar implementations or configurations of the present invention.

FIG. 1 is a block diagram of a computer processing system 100 to which the present invention may be applied according to an illustrative embodiment thereof. The computer processing system 100 includes at least one processor (CPU) 102 operatively coupled to other components via a system bus 104. A read only memory (ROM) 106, a random access memory (RAM) 108, a display adapter 110, an I/O adapter 112, and a user interface adapter 114 are operatively coupled to the system bus 104.

A display device 116 is operatively coupled to the system bus 104 by the display adapter 110. A disk storage device (e.g., a magnetic or optical disk storage device) 118 is operatively coupled to the system bus 104 by the I/O adapter 112.

A mouse 120 and keyboard 122 are operatively coupled to the system bus 104 by the user interface adapter 114. The mouse 120 and keyboard 122 may be used to input/output information to/from the computer processing system 100.

The present invention will now be described generally with respect to FIGS. 2-6. Subsequent thereto, more detailed descriptions of various aspects of the present invention are provided. It is to be noted that while any equations provided with respect to FIGS. 2-6 may be so provided out of order; however, in the subsequent detailed description, the equations and corresponding text are provided sequentially in order of performance according to a preferred embodiment of the present invention. Given the teachings of the present invention provided herein, one of ordinary skill in the related art will readily contemplate variations of the sequence and actual details of the equations and corresponding steps described herein while maintaining the spirit and scope of the present invention.

FIG. 2 is a flow diagram illustrating a method for blind source separation of multiple sources, according to an illustrative embodiment of the present invention. The multiple sources are detected using an array of sensors to obtain two mixtures corresponding to the multiple sources (step 210). A frequency domain representation is computed for the two mixtures (step 211).

Subsequent to step 211, the method proceeds to step 220 to update mixing parameters of the two mixtures, and the the method proceeds to step 240 and filters the two mixtures.

Subsequent to step 240, a time domain representation is computed for the two mixtures (step 250). Estimates of the (original) multiple sources are output (step 260).

It is to be appreciated that the steps directed to computing the time domain and frequency domain representations (steps 250 and 211, respectively) are readily performed by one of ordinary skill in the related art. Nonetheless, for further detail on such computations, the reader is referred to Deller et al., “Discrete-Time Processing of Speech Signals”, IEEE Press, pubs., 2000. The other steps are described in further detail below with respect to FIGS. 3-6.

FIG. 3 is a flow diagram illustrating step 210 (obtain mixtures) of the method of FIG. 2, according to an illustrative embodiment of the present invention. The multiple sources to be separated are mixed to obtain two mixtures x1, x2 (step 310), expressed as follows: $\begin{matrix} {{{x_{1}(t)} = {\sum\limits_{j = 1}^{N}{s_{j}(t)}}},} & (1) \\ {{{x_{2}(t)} = {\sum\limits_{j = 1}^{N}{a_{j}{s_{j}\left( {t - \delta_{j}} \right)}}}},} & (2) \end{matrix}$ where N is a number of the multiple sources; δ_(j) is an arrival delay between the array of sensors resulting from an angle of arrival; α_(j) is a relative attenuation factor corresponding to a ratio of attenuations of paths between the multiple sources and the array of sensors; s_(j)(t) is a j^(th) source; j is a source index ranging from 1 to N, where N is a number of the multiple sources; and t is a time argument. We use Δ to denote the maximal possible delay between sensors, and thus, |δ_(j)|≦Δ, ∀j.

It is to be appreciated that an “array of sensors” is referred to herein with respect to detecting multiple sources. The array of sensors may include 2 (a pair) or more sensors.

FIG. 4 is a flow diagram illustrating step 240 (update mixing parameters) of the method of FIG. 2, according to an illustrative embodiment of the present invention. In general, the method of FIG. 4 updates the amplitude and delay estimates so that they better explain the measured data. The input information to the method is the time-frequency representations of the mixtures.

Upon receiving the k^(th) block of data corresponding to the frequency domain representation of a window of data centered at τ_(k)=kτ_(Δ) where τ_(Δ) is the time separating adjacent windows of the first mixture x₁ and the second mixture x₂, p(α_(j),δ_(j),ω,τ_(k)), which represents a distance measure for how well the current guesses as to what are the mixing parameters of the multiple sources are in light of the current data, is computed for each j=1, . . . ,N as follows (step 410): $\begin{matrix} {{p\left( {a_{j},\delta_{j},\omega,\tau_{k}} \right)} = {\frac{1}{1 + a_{j}^{2}}{{{{X_{1}\left( {\omega,\tau_{k}} \right)}a_{j}{\mathbb{e}}^{- {\mathbb{i}\omega\delta}_{j}}} - {X_{2}\left( {\omega,\tau_{k}} \right)}}}^{2}}} & (10) \end{matrix}$ where α_(j) and δ_(j) are current estimates of amplitude and delay mixing parameters, respectively; X₁(ω,τ_(k)) and X₂(ω,τ_(k)) are time-frequency representations of a first mixture and a second mixture of the two mixtures, respectively; k is a current time index; τ_(k) is a time argument corresponding to a k^(th) time index; ω is a frequency argument; and j is a source index ranging from 1 to N, where N is a number of the multiple sources.

It is to be appreciated that p(α_(j),δ_(j),ω,τ_(k)) is an error measure that calculates how much a given time-frequency point in the mixtures is explained by a particular guess of the j^(th) source's mixing parameters. The closer that p(α_(j),δ_(j),ω,τ_(k)) is to zero, the better it explains the time-frequency content of the mixtures, and the more likely the particular guess is the correct guess.

It is to be noted that each p(α_(j),δ_(j),ω,τ_(k)) term (wherein j=1, . . . ,N) depends on α_(j) and δ_(j), the current estimates of the relative amplitude and delay parameters, respectively. Moreover, each p(α_(j),δ_(j),ω,τ_(k)) term measures a distance assessing how well the data matches the j^(th) mixing parameter estimate. The smaller the distance, the better the j^(th) pair of mixing parameters explains the corresponding time-frequency point in the mixtures. The p(α_(j),δ_(j),ω,τ_(k)) play an important role in the updating of the amplitude and delay estimates, both of which are computed in two steps. First, we estimate by how much and in which direction we should change each estimate, this is the calculation in Equations (19) and (18) for amplitude and delay, respectively. The better the data is explained by a given amplitude-delay estimate, the larger the effect of that data on the resulting change calculation. Second, the new amplitude and delay estimates are calculated via Equations (20) and (21), respectively. The direction of the change has been calculated in Equations (19) and (18) and the magnitude of the change is scaled by a learning rate constant beta and a variable learning rate calculated using Equations (22) and (23). The variable learning rate is calculated such that estimates that are explaining more data that they previously did have a higher learning rate and estimates that are explaining less data that they previously did have a lower learning rate. Estimates that explain roughly the same amount of data over time (that is, not an increasing or decreasing amount) have roughly a constant learning rate.

Upon computing p(α_(j),δ_(j),ω,τ_(k)), the following are computed ${\frac{\partial{J\left( \tau_{k} \right)}}{\partial a_{j}}\quad\left( {{step}\quad 420} \right)},\quad{{q_{j}\lbrack k\rbrack}\quad\left( {{step}\quad 430} \right)},\quad{{and}\quad\frac{\partial{J\left( \tau_{k} \right)}}{\partial\delta_{j}}\quad{\left( {{step}\quad 440} \right).}}$ $\frac{\partial{J\left( \tau_{k} \right)}}{\partial a_{j}},$ which represents the direction and magnitude of change in the current estimate of the j^(th) source's amplitude mixing parameter causing the greatest change in how well the amplitude estimate describes (corresponds to) the data, is computed as follows (step 420): $\begin{matrix} {{\frac{\partial{J\left( \tau_{k} \right)}}{\partial a_{j}} = {\sum\limits_{\omega}\quad{\frac{{\mathbb{e}}^{{- \lambda}\quad{p{({a_{j},\delta_{j},\omega,\tau_{k}})}}}}{\sum\limits_{l}{\mathbb{e}}^{{- \lambda}\quad{p{({a_{l},\delta_{l},\omega,\tau_{k}})}}}}\quad\frac{2}{\left( {1 + a_{j}^{2}} \right)^{2}}}}}\left( \left( {{\left( {a_{j}^{2} - 1} \right){Re}\left\{ {{X_{1}\left( {\omega,\tau_{k}} \right)}\overset{\_}{X_{2}\left( {\omega,\tau_{k}} \right)}{\mathbb{e}}^{{- {\mathbb{i}}}\quad{\omega\delta}_{j}}} \right\}} + {a_{j}\left( {{{X_{1}\left( {\omega,\tau_{k}} \right)}}^{2} + {{X_{2}\left( {\omega,\tau_{k}} \right)}}^{2}} \right)}} \right) \right.} & (19) \end{matrix}$ where k is a current time index; τ_(k) is a time argument corresponding to a k^(th) time index; α_(j) is the current estimate of amplitude mixing parameter for the j^(th) source; δ_(j) is a current estimate of amplitude mixing parameter for the j^(th) source; X₁(ω,τ_(k)) and X₂(ω,τ_(k)) are time-frequency representations of a first mixture and a second mixture of the two mixtures, respectively; ω is a frequency argument; j and l are source indexes ranging from 1 to N, where N is a number of the multiple sources; p(α_(j),δ_(j),ω,τ_(k)) is an error measure for the j^(th) source; λ is a smoothness parameter; and Re is a function that returns a real part of a complex number.

q_(j)[k], which represents the amount of mixture energy which is explained (defined) by the j^(th) source's amplitude and delay mixing parameters, is computed as follows (step 430): $\begin{matrix} {{q_{j}\lbrack k\rbrack} = {\sum\limits_{\omega}\quad{\frac{{\mathbb{e}}^{{- \lambda}\quad{p{({a_{j},\delta_{j},\omega,\tau_{k}})}}}}{\sum\limits_{l}{\mathbb{e}}^{{- \lambda}\quad{p{({a_{l},\delta_{l},\omega,\tau_{k}})}}}}{{X_{1}\left( {\omega,\tau_{k}} \right)}}\quad{{X_{2}\left( {\omega,\tau_{k}} \right)}}}}} & (22) \end{matrix}$ where k is a current time index; τ_(k) is a time argument corresponding to a k^(th) time index; α_(j) and δ_(j) are current estimates of amplitude and delay mixing parameters, respectively for the j^(th) source; X₁(ω,τ_(k)) and X₂(ω,τ_(k)) are time-frequency representations of a first mixture and a second mixture of the two mixtures, respectively; ω is a frequency argument; j and l are source indexes ranging from 1 to N, where N is a number of the multiple sources; and λ is a smoothness parameter. $\frac{\partial{J\left( \tau_{k} \right)}}{\partial\delta_{j}},$ which represents the direction and magnitude of change in the current estimate of the j^(th) source's delay parameter causing the greatest change in how well the delay estimate describes (corresponds to) the data, is computed as follows (step 440): $\begin{matrix} {\frac{\partial{J\left( \tau_{k} \right)}}{\partial\delta_{j}} = {\sum\limits_{\omega}{\frac{{\mathbb{e}}^{{- \lambda}\quad{p{({a_{j},\delta_{j},\omega,\tau_{k}})}}}}{\sum\limits_{l}{\mathbb{e}}^{{- \lambda}\quad{p{({a_{l},\delta_{l},\omega,\tau_{k}})}}}}\quad\frac{{- 2}\omega\quad a_{j}}{1 + a_{j}^{2}}{Im}\left\{ {{X_{1}\left( {\omega,\tau_{k}} \right)}\overset{\_}{X_{2}\left( {\omega,\tau_{k}} \right)}{\mathbb{e}}^{{- {\mathbb{i}}}\quad{\omega\delta}_{j}}} \right\}}}} & (18) \end{matrix}$ where k is a current time index; τ_(k) is a time argument corresponding to a k^(th) time index; α_(j) is a current estimate of amplitude mixing parameter for the j^(th) source; δ_(j) is the current estimate of delay mixing parameter for the j^(th) source; X₁(ω,τ_(k)) and X₂(ω,τ_(k)) are time-frequency representations of a first mixture and a second mixture of the two mixtures, respectively; ω is a frequency argument; j and l are source indexes ranging from 1 to N, where N is a number of the multiple sources; p(α_(j),δ_(j),ω,τ_(k)) is an error measure for the j^(th) source; λ is a smoothness parameter; and Im is a function that returns an imaginary part of a complex number.

Subsequent to step 430, α_(j)[k], which represents the time dependent parameter (variable) learning rate, is computed as follows (step 450): $\begin{matrix} {{\alpha_{j}\lbrack k\rbrack} = \frac{q_{j}\lbrack k\rbrack}{\sum\limits_{m = 0}^{k}{\gamma^{k - m}{q_{j}\lbrack m\rbrack}}}} & (23) \end{matrix}$ where q_(j)[k] represents an amount of mixture energy that is defined by estimates of amplitude and delay mixing parameters for a j^(th) source; γ is a forgetting factor; m is a time index ranging from 0 to a current time index k; and j is a source index ranging from 1 to N, where N is a number of the multiple sources.

Upon computing ${\frac{\partial{J\left( \tau_{k} \right)}}{\partial a_{j}}\quad{and}\quad{\alpha_{j}\lbrack k\rbrack}},$ mixing parameter estimate α_(j)[k] is updated as follows (step 460): $\begin{matrix} {{a_{j}\lbrack k\rbrack} = {{a_{j}\left\lbrack {k - 1} \right\rbrack} - {\beta\quad{a_{j}\lbrack k\rbrack}\frac{\partial{J\left( \tau_{k} \right)}}{\partial a_{j}}}}} & (20) \end{matrix}$

Upon computing ${\frac{\partial{J\left( \tau_{k} \right)}}{\partial\delta_{j}}\quad{and}\quad{\alpha_{j}\lbrack k\rbrack}},$ mixing parameter estimate δ_(j)[k] is updated as follows (step 470): $\begin{matrix} {{\delta_{j}\lbrack k\rbrack} = {{\delta_{j}\left\lbrack {k - 1} \right\rbrack} - {\beta\quad{\delta_{j}\lbrack k\rbrack}\frac{\partial{J\left( \tau_{k} \right)}}{\partial\delta_{j}}}}} & (21) \end{matrix}$ where, for steps 460 and 470, a_(j)[k] and δ_(j)[k] are the estimates of amplitude and delay mixing parameters for a j^(th) source at a time index k, respectively; β is a learning rate constant; $\frac{\partial{J\left( \tau_{k} \right)}}{\partial a_{j}}$ represents the magnitude and the direction of change in a current estimate of amplitude mixing parameter for a j^(th) source that causes a largest change in correspondence between the current estimate and the data; $\frac{\partial{J\left( \tau_{k} \right)}}{\partial\delta_{j}}$ represents the magnitude and the direction of change in a current estimate of delay mixing parameter for a j^(th) source that causes a largest change in correspondence between the current estimate and the data; τ_(k) is a current time; k is a current time index; and j is a source index ranging from 1 to N, wherein N is a number of the multiple sources.

FIG. 5 is a flow diagram illustrating step 240 (filter) of the method of FIG. 2, according to an illustrative embodiment of the present invention.

Using p(α_(j),δ_(j),ω,τ_(k)) time-frequency masks are computed for the estimation of the j^(th) source as follows (step 510): $\begin{matrix} {{\Omega_{j}\left( {\omega,\tau_{k}} \right)} = \left\{ \begin{matrix} 1 & {{p\left( {a_{j},\delta_{j},\omega,\tau_{k}} \right)} \leq {{p\left( {a_{m},\delta_{m},\omega,\tau_{k}} \right)}\quad{\forall{m \neq j}}}} \\ 0 & {otherwise} \end{matrix} \right.} & (24) \end{matrix}$ where Ω_(j)(ω,τ_(k)) is a time-frequency mask; p(α_(j),δ_(j),ω,τ_(k)) is an error measure for a j^(th) source; j and m are source indexes ranging from 1 to N, where N is a number of the multiple sources; τ_(k) is a current time; k is a current time index; α_(j) and δ_(j) are current estimates of amplitude and delay mixing parameters for the j^(th) source, respectively; and ω is a frequency argument.

It is to be appreciated that, as noted above, the closer p(α_(j),δ_(j),ω,τ_(k)) is to zero, the better it explains the time-frequency content of the mixtures, and the more likely the particular guess is the correct guess. Thus, for each time-frequency point, one of the guesses has to be the correct one, so we choose the smallest value of p(α_(j),δ_(j),ω,τ_(k)) as it best explains the data; this is the selection done in Equation (24).

Using the time-frequency masks, the first mixture x₁ and the second mixture x₂ are filtered to obtain estimates of the (original) multiple sources as follows (step 520): S _(j)(ω,τ_(k))=Ω_(j)(ω,τ_(k))X ₁(ω,τ_(k))  (25) where S_(j)(ω,τ_(k)) is an estimate of a time-frequency representation of a j^(th) source; j is a source index ranging from 1 to N, where N is a number of the multiple sources; Ω_(j)(ω,τ_(k)) is a time-frequency mask; X₁(ω,τ_(k)) is a time-frequency representation of a first mixture of the two mixtures; ω is a frequency argument; τ_(k) is a current time; k is a current time index.

Thus, it is to be appreciated that at step 520, we take all the time-frequency points for which p(α_(j),δ_(j),ω,τ_(k)) was the best match (that is, where p(α_(j),δ_(j),ω,τ_(k)) has the smallest value, and leave these time-frequency points unaltered while we set to zero (or some low threshold) all the time-frequency pints in the mixtures for which p(α_(j),δ_(j),ω,τ_(k)) was not the smallest. This time-frequency filtered version of the mixtures is the estimate of the time-frequency representation of the first source. We repeat this for each j=1, . . . ,N to obtain the N original source estimates. This is the filtering of Equation (25).

FIG. 6 is a flow diagram illustrating step 260 (output estimates) of the method of FIG. 2, according to an illustrative embodiment of the present invention.

A dual window function is applied to the estimates of the (original) multiple sources obtained at step 520 of FIG. 5 to reconstruct the multiple sources from the estimates (step 610).

A description of mixing parameter estimation will now be given, according to an illustrative embodiment of the present invention. Such description will include descriptions of source mixing, source assumptions, amplitude-delay estimation, and ML mixing parameter gradient search. It is to be appreciated that, for the sake of brevity, definitions of terms appearing in the equations herein below will not be repeated; such definitions have been provided with respect to FIGS. 2-6 herein above or are readily ascertainable by one of ordinary skill in the related art.

Accordingly, source mixing, which is associated herein with mixing parameter estimation, will first be described, according to an illustrative embodiment of the present invention. Consider measurements of a pair of sensors where only the direct path is present. In this case, without loss of generality, we can absorb the attenuation and delay parameters of the first mixture, x₁(t), into the definition of the sources. The two mixtures can thus be expressed as, $\begin{matrix} {{{x_{1}(t)} = {\sum\limits_{j = 1}^{n}\quad{s_{j}(t)}}},} & (1) \\ {{{x_{2}(t)} = {\sum\limits_{j = 1}^{n}\quad{a_{j}{s_{j}\left( {t - \delta_{j}} \right)}}}},} & (2) \end{matrix}$

where N is the number of sources, δ_(j) is the arrival delay between the sensors resulting from the angle of arrival, and α_(j) is a relative attenuation factor corresponding to the ratio of the attenuations of the paths between sources and sensors. We use Δ to denote the maximal possible delay between sensors, and thus, |δ_(j)|≦Δ, ∀j.

A description of source assumptions, which are associated herein with mixing parameter estimation, will now be given according to an illustrative embodiment of the present invention.

We call two functions s₁(t) and s₂(t) W-disjoint orthogonal if, for a given windowing function W(t), the supports of the windowed Fourier transforms of s₁(t) and s₂(t) are disjoint. The windowed Fourier transform of s_(j)(t) as defined-, $\begin{matrix} {{{{F^{W}\left( {s_{j}( \cdot )} \right)}\left( {\omega,\tau} \right)} = {\int_{- \infty}^{\infty}\quad{{W\left( {t - \tau} \right)}{s_{j}(t)}e^{- {i\omega t}}{\mathbb{d}t}}}},} & (3) \end{matrix}$ which we will refer to as S_(j)(ω, τ) where appropriate. The W-disjoint orthogonality assumption can be stated concisely, S ₁(ω,τ)S ₂(ω,τ)=0,∀ω,τ.  (4)

In Appendix A, we introduce the notion of approximate W-disjoint orthogonality. When W(t)=1, we use the following property of the Fourier transform,

 F ^(w)(s _(j)(·−δ))(ω,τ)=e ^(−iωδ) F ^(W)(s _(j)(·))(ω,τ)  (5)

We will assume that (5) holds for all δ,|δ|≦Δ, even when W(t) has finite support. This assumption is further described by Balan et al., in “The Influence of Windowing on Time Delay Estimates”, Proceedings of the 2000 CISS, Princeton, N.J., Mar. 15-17, 2000.

A description of amplitude-delay estimation, which is associated herein with mixing parameter estimation, will now be given according to an illustrative embodiment of the present invention. Using the above assumptions, we can write the model from (1) and (2) for the case with two array elements as, $\begin{matrix} {\begin{bmatrix} {X_{1}\left( {\omega,\tau} \right)} \\ {X_{2}\left( {\omega,\tau} \right)} \end{bmatrix} = {\left\lbrack \quad\begin{matrix} 1 & \ldots & 1 \\ {a_{1}e^{- {i\omega\delta}_{1}}} & \cdots & {a_{N}e^{- {\omega\delta}_{N}}} \end{matrix}\quad \right\rbrack\quad\left\lbrack \quad\begin{matrix} {S_{1}\left( {\omega,\quad\tau} \right)} \\ \vdots \\ {S_{N}\left( {\omega,\quad\tau} \right)} \end{matrix}\quad \right\rbrack}} & (6) \end{matrix}$

For W-disjoint orthogonal sources, we note that at most one of the N sources will be non-zero for a given (T, I), thus, $\begin{matrix} {{\begin{bmatrix} {X_{1}\left( {\omega,\tau} \right)} \\ {X_{2}\left( {\omega,\tau} \right)} \end{bmatrix} = {\begin{bmatrix} 1 \\ {a_{j}e^{- {i\omega\delta}_{j}}} \end{bmatrix}\quad{S_{j}\left( {\omega,\tau} \right)}}},\quad{{for}\quad{some}\quad{j.}}} & (7) \end{matrix}$

The original DUET algorithm estimated the mixing parameters by analyzing the ratio of X₁(ω,τ) and X₂(ω,τ). In light of (7), it is clear that mixing parameter estimates can be obtained via, $\begin{matrix} {\left( {{a\left( {\omega,\tau} \right)},{\delta\left( {\omega,\tau} \right)}} \right) = \left( {\left| \frac{X_{2}\left( {\omega,\tau} \right)}{X_{1}\left( {\omega,\tau} \right)} \right|,{\frac{1}{\omega}{Im}\left\{ \left( {\ln\frac{X_{1}\left( {\omega,\tau} \right)}{X_{2}\left( {\omega,\tau} \right)}} \right) \right\}}} \right)} & (8) \end{matrix}$

The original DUET algorithm constructed in 2-D histogram of amplitude-delay estimates and looked at the number and location of the peaks in the histogram to determine the number of sources and their mixing parameters. The 2-D histogram is further described by Jourjine et al., in “Blind Separation of Disjoint Orthogonal Signals: Demixing N Sources from 2 Mixtures”, in Proceedings of the 2000 IEEE International Conference on Acoustics, Speech, and Signal Processing, Istanbul, Turkey, June 2000, vol. 5, pp. 2985-88.

A description of a maximum likelihood (ML) mixing parameter gradient search, which is associated herein with mixing parameter estimation, will now be given according to an illustrative embodiment of the present invention. For the online algorithm, we take a different approach. First note that, |X ₁(ω,τ)α_(j) e ^(−iωδ) ^(j) −X ₂(ω,τ)|²=0,  (9) if source j is the active source at time-frequency (ω,τ) Moreover, defining, $\begin{matrix} {{p\left( {a_{j},\delta_{j},\omega,\tau} \right)} = \left. \frac{1}{1 + a_{j}^{2}} \middle| {{{X_{1}\left( {\omega,\tau} \right)}a_{j}e^{- {i\omega\delta}_{j}}} - {X_{2}\left( {\omega,\tau} \right)}} \right|^{2}} & (10) \end{matrix}$ we can see that, $\begin{matrix} {{{\sum\limits_{\omega}\quad{\min\left( {{p\left( {a_{1},\delta_{1},\omega,\tau} \right)},\ldots\quad,{p\left( {a_{N},\delta_{N},\omega,\tau} \right)}} \right)}} = 0},} & (11) \end{matrix}$ because at least one p(α_(j),δ_(j),ω,τ) will be zero at each frequency. In the Appendix, it is shown that the maximum likelihood estimates of the mixing parameters satisfy, $\begin{matrix} {\min\limits_{a_{1},\delta_{1},\ldots,a_{N},\delta_{N}}{\sum\limits_{\quad\omega}{\min\quad{\left( {{p\left( {a_{1},\delta_{1},\omega,\tau} \right)},\ldots\quad,{p\left( {a_{N},\delta_{N},\omega,\tau} \right)}} \right).}}}} & (12) \end{matrix}$ We perform gradient descent with (12) as the objective function to learn the mixing parameters. In order to avoid the discontinuous nature of the minimum function, we approximate it smoothly as follows, $\begin{matrix} {{\min\left( {p_{1},p_{2}} \right)} = \frac{\left. {p_{1} + p_{2} -} \middle| {p_{1} - p_{2}} \right|}{2}} & (13) \\ {\approx \frac{p_{1} + p_{2} - {\phi\left( {p_{1} - p_{2}} \right)}}{2}} & (14) \\ {= {\frac{- 1}{\lambda}1{n\left( {e^{- {\lambda p}_{1}} + e^{- {\lambda p}_{2}}} \right)}}} & (15) \\ {{where},\quad{{\phi(x)} = {{\int_{0}^{x}{\frac{1 - e^{\lambda t}}{1 + e^{- {\lambda t}}}\quad{\mathbb{d}t}}} = {x + {\frac{2}{\lambda}1{n\left( {1 + e^{- \lambda}} \right)}}}}}} & (16) \end{matrix}$ Generalizing (15), the smooth ML objective function is, $\begin{matrix} {{J(\tau)} = {\min\limits_{{a_{1}\delta_{1}},\ldots,a_{N},\delta}{\sum\limits_{\quad\omega}{{- \frac{1}{\lambda}}1{n\left( {e^{- {{\lambda p}{({a_{1},\delta_{1},\omega,\tau})}}} + \cdots + e^{- {{\lambda p}{({a_{N},\delta_{N},\omega,\tau})}}}} \right)}}}}} & (17) \end{matrix}$ which has partials, $\begin{matrix} {{\frac{\partial{J(\tau)}}{\partial\delta_{j}} = {\sum\limits_{\omega}\quad{\frac{e^{- {{\lambda p}{({a_{j},\delta_{j},\omega,\tau})}}}}{\sum_{l}\quad e^{- {{\lambda p}{({a_{l},\delta_{l},\omega,\tau})}}}}\frac{{- 2}\omega\quad a_{j}}{1 + a_{j}^{2}}{Im}\left\{ {{X_{1}\left( {\omega,\tau} \right)}\overset{\_}{X_{2}\left( {\omega,\tau} \right)}e^{- {i\omega\delta}_{j}}} \right\}}}}{{and},}} & (18) \\ {\frac{\partial{J(\tau)}}{\partial a_{j}} = {\sum\limits_{\omega}{\frac{e^{- {\lambda p}_{j}}}{\sum_{k}e^{- {\lambda pk}}}\frac{2}{\left( {1 + a_{j}^{2}} \right)^{2}}\left( \left( {{\left( {a_{j}^{2} - 1} \right){Re}\left\{ {{X_{1}\left( {\omega,\tau} \right)}\left( \overset{\_}{{X_{2}\left( {\omega,\tau} \right)}e} \right)^{- {iw\delta}_{j}}} \right\}} + {a_{j}\left( \left| {X_{1}\left( {\omega,\tau} \right)} \middle| {}_{2}{+ \left| {X_{2}\left( {\omega,\tau} \right)} \right|^{2}} \right. \right)}} \right) \right.}}} & (19) \end{matrix}$

We assume we know the number of sources we are searching for and initialize an amplitude and delay estimate pair to random values for each source. The estimates (α_(j)[k],δ_(j)[k]) for the current time τ_(k)=kτ_(Δ) (where τ_(Δ) is the time separating adjacent time windows) are updated based on the previous estimate and the current gradient as follows, $\begin{matrix} {{a_{j}\lbrack k\rbrack} = {{a_{j}\left\lbrack {k - 1} \right\rbrack} - {{{\beta a}_{j}\lbrack k\rbrack}\frac{\partial{J\left( \tau_{k} \right)}}{\partial a_{j}}}}} & (20) \\ {{\delta_{j}\lbrack k\rbrack} = {{\delta_{j}\left\lbrack {k - 1} \right\rbrack} - {{{\beta\delta}_{j}\lbrack k\rbrack}\frac{\partial{J\left( \tau_{k} \right)}}{\partial\delta_{j}}}}} & (21) \end{matrix}$ where β is a learning rate constant and α_(j)[k] is a time and mixing parameter dependent learning rate for time index k for estimate j. In practice, we have found it helpful to adjust the learning rate depending on the amount of mixture energy recently explained by the current estimate. We define, $\begin{matrix} {{q_{j}\lbrack k\rbrack} = \left. {\sum\limits_{\omega}\quad\frac{e^{- {{\lambda p}{({a_{j},\delta_{j},\omega,\tau_{k}})}}}}{\sum\limits_{l}\quad e^{- {{\lambda p}{({a_{1},\delta_{l},\omega,\tau})}}}}} \middle| \left. {X_{l}\left( {\omega,\tau_{k}} \right)}||{X_{2}\left( {\omega,\tau_{k}} \right)} \right. \right.} & (22) \end{matrix}$ and update the parameter dependent learning rate as follows, $\begin{matrix} {{\alpha_{j}\lbrack k\rbrack} = \frac{q_{j}\lbrack k\rbrack}{\sum\limits_{m = 0}^{k}\quad{\gamma^{k - m}{q_{j}\lbrack m\rbrack}}}} & (23) \end{matrix}$ where γ is a forgetting factor.

A description of demixing will now be given, according to an illustrative embodiment of the present invention. In order to demix the j^(th) source, we construct a time-frequency mask based on the ML parameter estimator (see (B) in the Appendix), $\begin{matrix} {{\Omega_{j}\left( {\omega,\tau} \right)} = \left\{ \begin{matrix} 1 & {{p\left( {a_{j},\delta_{j},\omega,\tau} \right)} \leq {{p\left( {a_{m},\delta_{m},\omega,\tau} \right)}\quad{\forall{m \neq j}}}} \\ 0 & {otherwise} \end{matrix} \right.} & (24) \end{matrix}$ The estimate for the time-frequency representation of the j^(th) source is, S _(j)(ω.τ)=Ω_(j)(ω,τ)X ₁(ω,τ)  (25)

We then reconstruct the source using the appropriate dual window function. The preceding is further described by I. Daubechies, in “Ten Lectures on Wavelets”, ch. 3, SIAM, Philadelphia, Pa., 1992. In this way, we demix all the sources by partitioning the time-frequency representation of one of the mixtures. Note that because the method does not invert the mixing matrix, it can demix all sources even when the number of sources is greater than the number of mixtures (N>M).

A description of tests performed with respect to an illustrative embodiment of the present invention will now be given. We tested the method on mixtures created in both an anechoic room and an echoic office environment. The algorithm used parameters β=0.02, γ=0.95, λ=10 and a Hamming window of size 512 samples (with adjacent windows separated by 128 samples) in all the tests. For all tests, the method ran more than 5 times faster than real time.

FIG. 7 is a diagram illustrating a test setup for blind source separation on anechoic data, according to an illustrative embodiment of the present invention. Microphones are separated by ˜1.75 cm centered along the 180 degree to 0 degree line. The X's show the source locations used in the anechoic tests. The O's show the locations of the sources in the echoic tests. Separate recordings at 16 kHz were made of six speech files (4 female, 2 male) taken from the TIMIT database played from a loudspeaker placed at the X marks in FIG. 7. Pairwise mixtures were then created from all possible voice/angle combinations, excluding same voice and same angle combinations, yielding a total of 630 mixtures (630=6×5×7×6/2).

The SNR gains of the demixtures were calculated as follows. Denote the contribution of source j on microphone k as S_(jk)(ω, τ). Thus we have, X ₁(ω,τ)=S ₁₁(ω,τ)+S ₂₁(ω,τ)  (26) X ₂(ω,τ)=S ₁₂(ω,τ)+S ₂₂(ω,τ)  (27)

As we do not know the permutation of the demixing, we calculate the SNR gain conservatively, $\begin{matrix} {{SNR}_{1} = {{\max\left( {{10\quad\log\frac{{{\Omega_{1}S_{11}}}^{2}}{{{\Omega_{1}S_{21}}}^{2}}},{10\quad\log\frac{{{\Omega_{2}S_{12}}}^{2}}{{{\Omega_{2}S_{22}}}^{2}}}} \right)} -}} \\ {\max\left( {{10\quad\log\frac{{S_{11}}^{2}}{{S_{21}}^{2}}},{10\quad\log\frac{{S_{12}}^{2}}{{S_{22}}^{2}}}} \right)} \end{matrix}$ $\begin{matrix} {{SNR}_{2} = {{- {\min\left( {{10\quad\log\frac{{{\Omega_{1}S_{11}}}^{2}}{{{\Omega_{1}S_{21}}}^{2}}},{10\quad\log\frac{{{\Omega_{2}S_{12}}}^{2}}{{{\Omega_{2}S_{22}}}^{2}}}} \right)}} +}} \\ {\min\left( {{10\quad\log\frac{{S_{11}}^{2}}{{S_{21}}^{2}}},{10\quad\log\frac{{S_{12}}^{2}}{{S_{22}}^{2}}}} \right)} \end{matrix}$ In order to give the method time to learn the mixing parameters, the SNR results do not include the first half second of data.

FIG. 8 is a diagram illustrating the average SNR gain results for each angle difference for the anechoic data, according to an illustrative embodiment of the present invention. That is, FIG. 8 illustrates a comparison of overall separation SNR gain by angle difference, according to an illustrative embodiment of the present invention. As an example, the 60 degree difference results average all the 10-70, 40-100, 70-130, 100-160, and 130-190 results. Each bar shows the maximum SNR gain, one standard deviation above the mean, the mean (which is labeled), one standard deviation below the mean, and the minimum SNR gain over all the tests (both SNR₁ and SNR₂) are included in the averages). The separation results improve as the angle difference increases. FIG. 9 is a diagram illustrating the 30 degree difference results by angle comparison for the anechoic data, averaging 30 tests per angle comparison, according to an illustrative embodiment of the present invention. That is, FIG. 9 illustrates the overall separation SNR gain by 30 degree angle pairing, according to an illustrative embodiment of the present invention. The performance is a function of the delay. That is, the worst performance is achieved for the smallest delay (corresponding to the 10-40 mixtures), and so forth.

Recordings were also made in an echoic office with reverberation time of ˜500 ms, that is, the impulse response of the room fell to −60 dB after 500 ms. For the echoic tests, the sources were placed at 0, 90, 120, 150, and 180 degrees (see the O's in FIG. 7). FIG. 11 is a diagram illustrating separation results for pairwise mixtures of voices (4 female, 4 male), according to an illustrative embodiment of the present invention. Separation results for pairwise mixtures of voices (4 female, 4 male) and noises (line printer, copy machine, and vacuum cleaner) are shown in FIG. 10. That is, FIG. 10 is a diagram illustrating a comparison of overall separation SNR gain by angle difference, using echoic office data in a voice versus noise comparison, according to an illustrative embodiment of the present invention. The results are considerably worse in the echoic case, which is not surprising as the method assumes anechoic mixing. However, the method does achieve 5 dB SNR gain on average and is real-time.

TABLE 1 AVV EVV EVN Number of tests 630 560 480 Mean SNR gain (dB) 15.31 5.09 4.41 Std SNR gain (dB) 5.69 3.34 2.87 Max SNR gain (dB) 25.65 15.18 14.61 Min SNR gain (dB) −0.21 −0.42 −0.50 Summary results for all three testing groups (anechoic, echoic voice vs. voice, and echoic voice vs. noise) are shown in the Table 1. In the table, the following designations are employed: AVV=Anechoic Voice vs. Voice; EVV=Echoic Voice vs. Voice; and EVN=Echoic Voice vs. Noise. We have presented a real-time version of the DUET algorithm that uses gradient descent to learn the anechoic mixing parameters and then demixes by partitioning the time-frequency representations of the mixtures. We have also introduced a measure of W-disjoint orthogonality and provided empirical evidence for the approximate W-disjoint orthogonality of speech signals. Appendix A

Appendix A describes the justification for the W-disjoint orthogonality of speech assumption employed herein, according to an illustrative embodiment of the present invention. Clearly, the W-disjoint orthogonality assumption is not exactly satisfied for our signals of interest. We introduce here a measure of W-disjoint orthogonality for a group of sources and show that speech signals are indeed nearly W-disjoint orthogonal to each other. Consider the time-frequency mask, $\begin{matrix} {{\Phi_{x}^{12}\left( {\omega,\tau} \right)} = \left\{ \begin{matrix} 1 & {\left. {20{\log\left( {{{S_{1}\left( {\omega,\tau} \right)}}/{{S_{2}\left( {\omega,\tau} \right)}}} \right)}} \right\rangle x} \\ 0 & {otherwise} \end{matrix} \right.} & (28) \end{matrix}$ and the resulting energy ratio, r(x)=∥Φ_(x) ¹²(ω,τ)S ₁(ω,τ)∥² /∥S ₁(ω,τ)∥²  (29) which measures the percentage of energy of source 1 for time-frequency points where it dominates source 2 by x dB. We propose r(x) as a measure of W-disjoint orthogonality. For example, FIG. 12 shows r(x) averaged for pairs of sources used in the demixing tests. We can see from the graph that r(3)>0.9 for all three, and thus say that the signals used in the tests were 90% W-disjoint orthogonal at 3 dB. If we can correctly map time-frequency points with 3 dB or more single source dominance to the correct corresponding output partition, we can recover the 90% of the energy of the original sources. FIG. 12 also demonstrates the W-disjoint orthogonality of six speech signals taken as a group and the fact that independent Gaussian white noise processes are less than 50% W-disjoint orthogonal at all levels. Appendix B

Appendix B describes the ML Estimation for the DUET Model employed herein, according to an illustrative embodiment of the present invention. Assume a mixing model of type (1)-(2) to which we add measurement noise: $\begin{matrix} {{X_{1}\left( {\omega,\tau} \right)} = {{\sum\limits_{j = 1}^{N}\quad{{q_{j}\left( {\omega,\tau} \right)}{S_{j}\left( {\omega,\tau} \right)}}} + {v_{1}\left( {\omega,\tau} \right)}}} & (30) \\ {{X_{2}\left( {\omega,\tau} \right)} = {{\sum\limits_{j = 1}^{N}\quad{a_{j}{\mathbb{e}}^{{- {\mathbb{i}\omega\delta}}\quad j}{q_{j}\left( {\omega,\tau} \right)}{S_{j}\left( {\omega,\tau} \right)}}} + {v_{2}\left( {\omega,\tau} \right)}}} & (31) \end{matrix}$ The ideal model (1)-(2) is obtained in the limit ν₁, ν₂ ? 0. In practice, we make the computations assuming the existence of such a noise, and then we pass to the limit. We assume the noise and source signals are Gaussian distributed and independent from one another, with zero mean and known variances: $\left. \begin{bmatrix} {v_{1}\left( {\omega,\tau} \right)} \\ {v_{2}\left( {\omega,\tau} \right)} \end{bmatrix} \right.\sim{N\left( {0,{\sigma^{2}I_{2}}} \right)}$  S _(j)(ω,τ)˜N(0,p _(j)(ω)) The Bernoulli random variables q_(j)(ω,τ)'s are NOT independent. To accommodate the W-disjoint orthogonality assumption, we require that for each (ω,τ) at most one of the q_(j)(ω,τ)'s can be unity, and all others must be zero. Thus the N-tuple (q₁(ω,τ), . . . ,q_(N)(ω,τ)) takes values only in the set Q={(0, 0, . . . , 0), (1, 0, . . . , 0), . . . , (0, 0, . . . , 1)} of cardinality N+1. We assume uniform priors for these R.V.'s.

The short-time stationarity implies different frequencies are decorrelated (and hence independent) from one another. We use this property in constructing the likelihood. The likelihood of parameters (α₁, δ₁, . . . , α_(N), δ_(N)) given the data (X₁(ω,τ),X₂(ω,τ)) and spectral powers σ²,p_(j)(ω) at a given τ, is given by conditioning with respect to q_(j)(ω,τ)'s by: $\begin{matrix} {{{L\left( {a_{1},\delta_{1},\ldots\quad,a_{N},{\delta_{N};\tau}} \right)}:={{p\left( {{X_{1}( \cdot )},{{X_{2}( \cdot )}❘a_{1}},\delta_{1},\ldots\quad,a_{N},{\delta_{N};\tau},\sigma^{2},p_{j}} \right)} = {\underset{\omega\quad}{\prod\quad}\underset{{j = 0}\quad}{\overset{N\quad}{\sum\quad}}\frac{\exp\left\{ {- M} \right\}}{\pi^{2}{\det\left( {{\sigma^{2}I_{2}} + {{p_{j}(\omega)}{\Gamma_{j}(\omega)}}} \right)}}{p\left( {{q_{j}\left( {\omega,\tau} \right)} = 1} \right)}}}}{{where}\text{:}}\quad{M = {\left\lbrack {\overset{\_}{X_{1}\left( {\omega,\tau} \right)}\quad\overset{\_}{X_{2}\left( {\omega,\tau} \right)}} \right\rbrack{\left( {{\sigma^{2}I_{2}} + {{p_{j}(\omega)}{\Gamma_{j}(\omega)}}} \right)^{- 1}\begin{bmatrix} {X_{1}\left( {\omega,\tau} \right)} \\ {X_{2}\left( {\omega,\tau} \right)} \end{bmatrix}}\quad{and}}}{\Gamma_{j} = {{\begin{bmatrix} 1 \\ {a_{j}{\mathbb{e}}^{- {\omega\delta}_{j}}} \end{bmatrix}\left\lbrack {1\quad a_{j}{\mathbb{e}}^{{\mathbb{i}\omega\delta}_{j}}} \right\rbrack} = \begin{bmatrix} 1 & {a_{j}{\mathbb{e}}^{{\mathbb{i}\omega\delta}_{j}}} \\ {a_{j}{\mathbb{e}}^{- {\mathbb{i}\omega\delta}_{j}}} & a_{j}^{2} \end{bmatrix}}}} & (32) \end{matrix}$ and we have defined ${{q_{0}\left( {\omega,\tau} \right)} = {\sum\limits_{k = 1}^{N}{q_{k}\left( {\omega,\tau} \right)}}},\quad{{p_{0}(\omega)} = 0},\quad{{{and}\quad{\Gamma_{0}(\omega)}} = I_{2}}$ for notational simplicity in (32) in dealing with the case when no source is active at a given (ω,τ).

Next, the Matrix Inversion Lemma (or an explicit computation) gives: $\left. {\begin{matrix} {{- M} = {{- \frac{1}{\sigma^{2}}}\frac{1}{\sigma^{2} + {{p_{j}(\omega)}\left( {1 + a_{j}^{2}} \right)}}}} \\ {\left( {{{p_{j}(\omega)}{{{a_{j}{\mathbb{e}}^{- {\mathbb{i}\omega\delta}_{j}}{X_{1}\left( {\omega,\tau} \right)}} - {X_{2}\left( {\omega,\tau} \right)}}}^{2}} +} \right.} \\ \left. {\sigma^{2}\left( {{{,{X_{1}\left( {\omega,\tau} \right)}}}^{2} + {{X_{2}\left( {\omega,\tau} \right)}}^{2}} \right)} \right) \end{matrix}{and}{{\det\left( {{\sigma^{2}I_{2}} + {{p_{j}(\omega)}{\Gamma_{j}(\omega)}}} \right)} = {\sigma^{2} + {{p_{j}(\omega)}\left( {1 + a_{j}^{2}} \right)}}}} \right)$ and det(σ² I ₂ +p _(j)(ω)Γ_(j)(ω))=σ² +p _(j)(ω)(1+α_(j) ²)) Now we pass to the limit σ→0. The dominant terms from the previous two equations are: ${- \frac{1}{\sigma^{2}}}\frac{{{{a_{j}{\mathbb{e}}^{- {\mathbb{i}\omega\delta}_{j}}{X_{1}\left( {\omega,\tau} \right)}} - {X_{2}\left( {\omega,\tau} \right)}}}^{2}}{1 + a_{j}^{2}}\quad{and}\quad\sigma^{2}{p_{j}(\omega)}\left( {1 + a_{j}^{2}} \right)$ and σ² p _(j)(ω)(1+α_(j) ²) Of the N+1 terms in each sum of (32), only one term is dominant, namely the one of the largest exponent. Assume π:ω

{0,1, . . . ,N} is the selection map defined by: π(ω)=K, if p(α_(k),δ_(k),ω,τ)≦p(α_(j),δ_(j),ω,τ)∀_(j) ≠k where:  p(α₀,δ₀,ω,τ)=|X ₁(ω,τ)|² +|X ₂(ω,τ)|² and for k ∈{1,2, . . . ,N}: ${p\left( {a_{k},\delta_{k},\omega,\tau} \right)} = \frac{{{{a_{j}{\mathbb{e}}^{- {\mathbb{i}\omega\delta}_{j}}{X_{1}\left( {\omega,\tau} \right)}} - {X_{2}\left( {\omega,\tau} \right)}}}^{2}}{1 + a_{j}^{2}}$ Then the likelihood becomes: $\begin{matrix} {{L\left( {a_{1},\delta_{1},\ldots\quad,a_{N},{\delta_{N};\tau}} \right)} = {\frac{C}{\sigma^{2M}}{\prod\limits_{k = 0}^{N}{\prod\limits_{\omega\quad\varepsilon\quad{\pi^{- 1}{(k)}}}{t_{k}\quad\exp\left\{ {- \frac{p\left( {a_{k},\delta_{k},\omega,\tau} \right)}{\sigma^{2}}} \right\}}}}}} & (33) \end{matrix}$ with M, the number of frequencies and: $t_{k} = \begin{Bmatrix} \frac{1}{\sigma^{2}} & {k = 0} \\ \frac{1}{{p_{k}(\omega)}\left( {1 + a_{k}^{2}} \right)} & {k \in \left\{ {1,2,\ldots\quad,N} \right\}} \end{Bmatrix}$ The dominant term in log-likelihood remains the exponent. Thus: $\begin{matrix} {{\log\quad L} \approx {{- \frac{1}{\sigma^{2}}}{\sum\limits_{k = 0}^{N}{\sum\limits_{\omega\quad\varepsilon\quad{\pi^{- 1}{(k)}}}{p\left( {a_{k},\delta_{k},\omega,\tau} \right)}}}}} & (34) \end{matrix}$ and maximizing the log-likelihood is equivalent to the following (which is (12)): $\min\limits_{a_{1},\delta_{1},\ldots,a_{N},\delta_{N}}{\sum\limits_{\omega}{\min\left( {{p\left( {a_{1},\delta_{1},\omega,\tau} \right)},\ldots\quad,{p\left( {a_{N},\delta_{N},\omega,\tau} \right)}} \right)}}$

Although the illustrative embodiments have been described herein with reference to the accompanying drawings, it is to be understood that the present invention is not limited to those precise embodiments, and that various other changes and modifications may be affected therein by one of ordinary skill in the related art without departing from the scope or spirit of the invention. All such changes and modifications are intended to be included within the scope of the invention as defined by the appended claims. 

1. A method for blind source separation of multiple sources, comprising: detecting the multiple sources using an array of sensors to obtain data representative of the multiple sources; representing the data by two mixtures having estimates of amplitude and delay mixing parameters; updating the estimates of amplitude and delay mixing parameters, comprising the steps of: calculating a plurality of error measures, each of the plurality of error measures indicating a closeness of the estimates of amplitude and delay mixing parameters for a given source to a given time-frequency point in the two mixtures; and revising the estimates of amplitude and delay mixing parameters, based on the plurality of error measures; filtering the two mixtures to obtain estimates of the multiple sources, comprising the steps of: selecting one of the plurality of error measures having a smallest value in relation to any other of the plurality of error measures, for each of a plurality of time-frequency points in the mixtures; and leaving unaltered any of the plurality of time-frequency points in the mixtures for which a given one of the plurality of error measures has the smallest value, while setting to zero any other of the plurality of time-frequency points in the mixtures for which the given one of the plurality of error measures does not have the smallest value, for each of the plurality of error measures; outputting the estimates of the multiple sources.
 2. The method of claim 1, wherein said step of representing the data by two mixtures comprises the step of computing a first mixture x1 and a second mixture x2 as follows: ${{x_{1}(t)} = {\sum\limits_{j = 1}^{N}{s_{j}(t)}}},{{x_{2}(t)} = {\sum\limits_{j = 1}^{N}{a_{j}{s_{j}\left( {t - \delta_{j}} \right)}}}},$ where N is a number of the multiple sources; δ_(j) is an arrival delay between the array of sensors resulting from an angle of arrival; α_(j) is a relative attenuation factor corresponding to a ratio of attenuations of paths between the multiple sources and the array of sensors; s_(j)(t) is a j^(th) source; j is a source index ranging from 1 to N, where N is a number of the multiple sources; and t is a time argument.
 3. The method of claim 1, wherein said step of calculating the plurality of error measures comprises the step of computing ${p\left( {a_{j},\delta_{j},\omega,\tau_{k}} \right)} = \left. \frac{1}{1 + a_{j}^{2}} \middle| {{{X_{1}\left( {\omega,\tau_{k}} \right)}a_{j}{\mathbb{e}}^{{- i}\quad\omega\quad\delta_{j}}} - {X_{2}\left( {\omega,\tau_{k}} \right)}} \right|^{2}$ where p(α_(j),δ_(j),ω,τ_(k)) is an error measure for a j^(th) source; α_(j) and δ_(j) are current estimates of amplitude and delay mixing parameters, respectively; X₁(ω,τ_(k)) and X₂(ω,τ_(k)) are time-frequency representations of a first mixture and a second mixture of the two mixtures, respectively; k is a current time index; τ_(k) is a time argument corresponding to a k^(th) time index; ω is a frequency argument; and j is a source index ranging from 1 to N, where N is a number of the multiple sources.
 4. The method of claim 1, wherein said step of revising the estimates of amplitude and delay mixing parameters comprises the step of computing a magnitude and a direction of change for each of the estimates of amplitude and delay mixing parameters.
 5. The method of claim 4, wherein said step of computing the direction of change for each of the estimates of amplitude mixing parameters comprises the step of computing $\frac{\partial{J\left( \tau_{k} \right)}}{\partial a_{j}} = \begin{matrix} {\sum\limits_{\omega}{\frac{{\mathbb{e}}^{{- \lambda}\quad{p{({a_{j},\delta_{j},\omega,\tau_{k}})}}}}{\sum\limits_{l}{\mathbb{e}}^{{- \lambda}\quad{p{({a_{l},\delta_{l},\omega,\tau_{k}})}}}}\frac{2}{\left( {1 + a_{j}^{2}} \right)^{2}}}} \\ {\left( \left( {{\left( {a_{j}^{2} - 1} \right)\text{Re}\left\{ {{X_{1}\left( {\omega,\tau_{k}} \right)}\overset{\_}{X_{2}\left( {\omega,\tau_{k}} \right)}e^{{- i}\quad\omega\quad\delta_{j}}} \right\}} +} \right. \right.} \\ \left. {a_{j}\left( \left| {X_{1}\left( {\omega,\tau_{k}} \right)} \middle| {}_{2}{+ \left| {X_{2}\left( {\omega,\tau_{k}} \right)} \right|^{2}} \right. \right)} \right) \end{matrix}$ ${where}\quad\frac{\partial{J\left( \tau_{k} \right)}}{\partial a_{j}}$ represents the magnitude and the direction of change in a current estimate of amplitude mixing parameter for a j^(th) source that causes a largest change in correspondence between the current estimate and the data; k is a current time index; τ_(k) is a time argument corresponding to a k^(th) time index; α_(j) is the current estimate of amplitude mixing parameter for the j^(th) source; δ_(j) is a current estimate of delay mixing parameter for the j^(th) source; X₁(ω,τ_(k)) and X₂(ω,τ_(k)) are time-frequency representations of a first mixture and a second mixture of the two mixtures, respectively; ω is a frequency argument; j and l are source indexes ranging from 1 to N, where N is a number of the multiple sources; p(α_(j),δ_(j),ω,τ_(k)) is an error measure for the j^(th) source; λ is a smoothness parameter; and Re is a function that returns a real part of a complex number.
 6. The method of claim 4, wherein said step of computing the direction of change for each of the estimates of delay mixing parameters comprises the step of computing $\begin{matrix} {\frac{\partial{J\left( \tau_{k} \right)}}{\partial\delta_{j}} = {{\sum\limits_{\omega}\frac{{\mathbb{e}}^{{- \lambda}\quad{p{({a_{j},\delta_{j},\omega,\tau_{k}})}}}}{\sum\limits_{l}{\mathbb{e}}^{{- \lambda}\quad{p{({a_{l},\delta_{l},\omega,\tau_{k}})}}}}} - {2\quad\omega\quad\frac{a_{j}}{1 + a_{j}^{2}}}}} \\ {{Im}\left\{ {{X_{1}\left( {\omega,\tau_{k}} \right)}\overset{\_}{X_{2}\left( {\omega,\tau_{k}} \right)}\quad{\mathbb{e}}^{{- i}\quad\omega\quad\delta_{j}}} \right\}} \end{matrix}$ ${where}\quad\frac{\partial{J\left( \tau_{k} \right)}}{\partial\delta_{j}}$ represents the magnitude and the direction of change in a current estimate of delay mixing parameter for a j^(th) source that causes a largest change in correspondence between the current estimate and the data; k is a current time index; τ_(k) is a time argument corresponding to a k^(th) time index; α_(j) is a current estimate of amplitude mixing parameter for the j^(th) source; δ_(j) is the current estimate of delay mixing parameter for the j^(th) source; X₁(ω,τ_(k)) and X₂(ω,τ_(k)) are time-frequency representations of a first mixture and a second mixture of the two mixtures, respectively; ω is a frequency argument; j and l are source indexes ranging from 1 to N, where N is a number of the multiple sources; p(α_(j),δ_(j),ω,τ_(k)) is an error measure for the j^(th) source; λ is a smoothness parameter; and Im is a function that returns an imaginary part of a complex number.
 7. The method of claim 4, wherein said step of revising the estimates of amplitude and delay mixing parameters comprises the step of computing $\begin{matrix} {{a_{j}\lbrack k\rbrack} = {{a_{j}\left\lbrack {k - 1} \right\rbrack} - {\beta\quad{a_{j}\lbrack k\rbrack}\frac{\partial{J\left( \tau_{k} \right)}}{\partial a_{j}}}}} \\ {{\delta_{j}\lbrack k\rbrack} = {{\delta_{j}\left\lbrack {k - 1} \right\rbrack} - {{{\beta\delta}_{j}\lbrack k\rbrack}\frac{\partial{J\left( \tau_{k} \right)}}{\partial\delta_{j}}}}} \end{matrix}$ where a_(j)[k] and δ_(j)[k] are the estimates of amplitude and delay mixing parameters for a j^(th) source at a time index k, respectively; β is a learning rate constant; $\frac{\partial{J\left( \tau_{k} \right)}}{\partial a_{j}}$ represents the magnitude and the direction of change in a current estimate of amplitude mixing parameter for a j^(th) source that causes a largest change in correspondence between the current estimate and the data; $\frac{\partial{J\left( \tau_{k} \right)}}{\partial\delta_{j}}$ represents the magnitude and the direction of change in a current estimate of delay mixing parameter for a j^(th) source that causes a largest change in correspondence between the current estimate and the data; τ_(k) is a current time; k is a current time index; and j is a source index ranging from 1 to N, wherein N is a number of the multiple sources.
 8. The method of claim 4, wherein said step of computing the magnitude of change for each of the estimates of amplitude and delay mixing parameters comprises the step of scaling the magnitude of change by a learning rate constant and a variable learning rate.
 9. The method of claim 8, wherein said step of computing the learning rate constant comprises the step of computing ${q_{j}\lbrack k\rbrack} = {\sum\limits_{\omega}{\frac{e^{{- \lambda}\quad{p{({a_{j},\delta_{j},\omega,\tau_{k}})}}}}{\underset{l}{\Sigma}\quad e^{{- \lambda}\quad{p{({a_{l},\delta_{l},\omega,\tau_{k}})}}}}{\left. {X_{1}\left( {\omega,\tau_{k}} \right)}||{X_{2}\left( {\omega,\tau_{k}} \right)} \right.}}}$ where q_(j)[k] represents an amount of mixture energy that is defined by estimates of amplitude and delay mixing parameters for a j^(th) source; k is a current time index; τ_(k) is a time argument corresponding to a k^(th) time index; α_(j) and δ_(j) are current estimates of amplitude and delay mixing parameters, respectively for the j^(th) source; X₁(ω,τ_(k)) and X₂(ω,τ_(k)) are time-frequency representations of a first mixture and a second mixture of the two mixtures, respectively; ω is a frequency argument; j and l are source indexes ranging from 1 to N, where N is a number of the multiple sources; and λ is a smoothness parameter.
 10. The method of claim 8, wherein said step of computing the variable learning rate comprises the step of computing ${a_{j}\lbrack k\rbrack} = \frac{q_{j}\lbrack k\rbrack}{\sum\limits_{m = 0}^{k}{\gamma^{k - m}{q_{j}\lbrack m\rbrack}}}$ where α_(j)[k] represents the variable learning rate; q_(j)[k] represents an amount of mixture energy that is defined by estimates of amplitude and delay mixing parameters for a j^(th) source; γ is a forgetting factor; m is a time index ranging from 0 to a current time index k; and j is a source index ranging from 1 to N, where N is a number of the multiple sources.
 11. The method of claim 1, wherein said step of selecting one of the plurality of measures comprises the step of computing ${\Omega_{j}\left( {\omega,\tau_{k}} \right)} = \left\{ \begin{matrix} 1 & {{p\left( {a_{j},\delta_{j},\omega,\tau_{k}} \right)} \leq {{p\left( {a_{m},\delta_{m},\omega,\tau_{k}} \right)}\quad{\forall{m \neq j}}}} \\ 0 & {otherwise} \end{matrix} \right.$ where Ω_(j)(ω,τ_(k)) is a time-frequency mask; p(α_(j),δ_(j),ω,τ_(k)) is an error measure for a j^(th) source; j and m are source indexes ranging from 1 to N, where N is a number of the multiple sources; τ_(k) is a current time; k is a current time index; α_(j) and δ_(j) are current estimates of amplitude and delay mixing parameters for the j^(th) source, respectively; and so is a frequency argument.
 12. The method of claim 1, wherein said leaving and setting steps comprise the step of computing S _(j)(ω,τ_(k))=Ω_(j)(ω,τ_(k))X ₁(ω,τ_(k)) where S_(j)(ω,τ_(k)) is an estimate of a time-frequency representation of a j^(th) source; j is a source index ranging from 1 to N, where N is a number of the multiple sources; Ω_(j)(ω,τ_(k)) is a time-frequency mask; X₁(ω,τ_(k)) is a time-frequency representation of a first mixture of the two mixtures; ω is a frequency argument; τ_(k) is a current time; and k is a current time index.
 13. The method of claim 1, wherein said step of selecting one of the plurality of measures comprise the step of constructing a time-frequency mask based on a maximum likelihood parameter estimation.
 14. The method of claim 13, wherein said step of constructing the time-frequency mask comprises the step of computing ${\Omega_{j}\left( {\omega,\tau_{k}} \right)} = \left\{ \begin{matrix} 1 & {{p\left( {a_{j},\delta_{j},\omega,\tau_{k}} \right)} \leq {{p\left( {a_{m},\delta_{m},\omega,\tau_{k}} \right)}\quad{\forall{m \neq j}}}} \\ 0 & {otherwise} \end{matrix} \right.$ where Ω_(j)(ω,τ_(k)) is a time-frequency mask; p(α_(j),δ_(j),ω,τ_(k)) is an error measure for a j^(th) source; j and m are source indexes ranging from 1 to N, wherein N is a number of the multiple sources; τ_(k) is a current time; k is a current time index; α_(j) and δ_(j) are current estimates of amplitude and delay mixing parameters for the j^(th) source, respectively; and ω is a frequency argument.
 15. The method of claim 1, wherein said leaving and setting steps comprise the step of computing estimates for time-frequency representations of each of the multiple sources.
 16. The method of claim 15, wherein said step of computing the estimates for time-frequency representations comprises the step of computing an estimate for a j^(th) source of the multiple sources as follows: S _(j)(ω,τ_(k))=Ω_(j)(ω,τ_(k))X ₁(ω,τ_(k)) where S_(j)(ω,τ_(k)) is an estimate of a time-frequency representation of a j^(th) source; j is a source index ranging from 1 to N, where N is a number of the multiple sources; Ω_(j)(ω,τ_(k)) is a time-frequency mask; X₁(ω,τ_(k)) is a time-frequency representation of a first mixture of the two mixtures; ω is a frequency argument; τ_(k) is a current time; k is a current time index.
 17. The method of claim 1, wherein said filtering step comprises the step of partitioning a time-frequency representation of one of the two mixtures to demix all of the multiple sources.
 18. The method of claim 1, wherein said outputting step comprises the step of reconstructing the multiple sources using a dual window function applied to the estimates.
 19. The method of claim 1, further comprising the step of computing a frequency domain representation for the two mixtures, prior to said updating step.
 20. The method of claim 1, further comprising the step of computing a time domain representation for the estimates of the multiple sources, prior to said outputting step.
 21. The method of claim 1, wherein said method is implemented by a program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform said method steps. 